1. Technical Field
The present invention relates to determining the presence and absence of a plurality of devices on a bus. More specifically, it relates to a method and system for determining whether devices are present at those connection points available on a bus in a computer system at system startup as well as while the system is operating.
2. Description of the Related Art
In computer systems providing for client server architecture wherein client and server are interconnected over a network, it is desirable to minimize server down time. Frequently servers include provisions for attaching what are known as hot plug devices meaning that these devices may be changed out without powering down the system and therefore minimizing down time and service interruptions to clients.
One common way of identifying configuration changes is the use of sense lines or self notification. In the case of hot plug configuration changes the added device itself provides notification. This capability means that some degree of intelligence must be included within the hot plug device. Hot plug detection typically is achieved using a present detect bit included within each component that can be attached or removed from the system.
U.S. Pat. No. 5,834,856 to Tavallaei, et al., relates to a method for a periodically testing redundant devices in a computer system. A redundant device may be hot pluggable so that the computer system need not be shut down when the primary or redundant devices need to be replaced. Both primary and redundant devices are in communication with the device controller which is adapted to check the operability of the primary device and keep the redundant devices normally off. The redundant devices are made operational for predetermined intervals for predetermined periods of time in order to determine whether the redundant device could be operational if the primary device failed.
IBM Technical Disclosure Bulletin Vol. 37, No. 06B, June 1994, describes a dynamic update capability for determining planar board features. A word field dependent on the planar board may be upgraded to reflect a large number of combination of features on the board and it makes it possible to indicate various functional changes applied to the planar board during the manufacturing process.
Copending, commonly assigned U.S. patent application Ser. No. 09/163,992 relates to an I2C Bus Expansion apparatus with which the present invention may be used the disclosure of this application is herewith incorporated by reference in its entirety.
The shortcomings of the prior art as described above may be overcome by providing a method and system useful at system startup and run-time phases in which a microprocessor, serving as a switch between a main bus and several sub buses, polls all of the sub-bus addresses at which devices may be attached. At system startup, determining presence of devices is important because there is no way, otherwise, to know what hardware devices may have been added or removed from the computer system when it is powered down.
If this task is left to the main bus controller then startup times are increased. However, as is practiced in the prior art at it is often preferable to distribute that responsibility so that a master controller is free to focus on other start-up issues. Once the run-time phase of the computer system is entered it is desirable to periodically determine whether any of the hot plug devices have been added or removed from the system.
The method and system of the present invention solve both problems by allocating the task of polling all devices to a small microprocessor which then stores in a specific memory area an indication of the presence and other information about the device at each possible address at which a device could be attached. Once the run-time phase has begun, polling all sub-bus addresses is done continually so that the memory area contains in real time the current component/device status of all devices attached to the bus.
Advantageously the present invention accelerates the speed at which the start-up phase occurs. Thus, in a system provided with the present invention, once a polling command is issued, hub controller(s) connecting various sub-buses to the main bus begin to poll all of the device slots. This polling occurs sequentially by sending out a signal on the bus to each available address and then waiting to determine if an acknowledge (ACK) response is returned from that address. Once an ACK response is returned, a notation is made in the component map in the specified memory area. If no ACK is returned an appropriate notation is entered into the memory map. This process of address interrogation continues until all possible addresses are checked. At the end of this address interrogation sequence, there results a map in memory of all possible component connections with an indication, inter alia, of the presence of devices at those addresses.